<?php

/**
 * \file
 * Classe `TextBox`.
 */

/**
 * Membre de formulaire simple sous forme d'un textbox.
 * La requete se fera avec un \like.
 */
namespace pilar\SearchFormMembers /* \cond */ ; /* \endcond */
{

/**
 * Membre simple qui génèrera un \like.
 *
 * \since 08/03/2009
 * \author Dirk MARSKI <dirk.marski@gmail.com>
 */
class TextBox extends \pilar\Forms\SearchFormMember {


protected function load() {
 parent::load();

 $fm = new \pilar\SimpleFormMembers\TextBox(array(
   'name' => $this->_entityMember->get('name'),
   'label' => $this->_entityMember->get('caption')
 ));
 $this->addFormMember($fm);
}


/**
 * Génère la requête sql du champs 'value' du membre d'entité si la valeur
 * récupérée est valide.
 *
 * \param $objects ObjectCollection pour la requête.
 * \since 10/03/2009
 */
protected function createSqlExpressions($objects, $value) {
 foreach ($this->formMembers() as $fm) {
  $cont = false;
  if ($value == '' && !$fm->isEmpty()) {
   $value = $fm->value('value');
   $cont = true;
		} else if ($value != '') {
   $cont = true;
  }
  if ($cont) {
   // TODO: vérifier la compatibilité avec 'notEmpty' ...
   if ($fm->acceptsValue($value, 'value')) {
    $this->addSqlExp(
     \like(
      // TODO : enlever la fonction __get().
						$objects->member($this->_entityMember->get('name'))->value,
      \cst('%'.$value.'%')
    ));
   }
  }
 }
}


} // Class.

} // Namespace.

?>
